Next:
Interrupt_Kernel Interface
, Previous:
Data Copy_Kernel Interface
, Up:
Index
Memory_Kernel Interface
Memory
<linux/slab.h>
1. 커널 물리적 메모리 동적 할당/해제
void
*
kmalloc
(
size_t
size
,
int
flags
)
;
//
할
당
void
kfree
(
void
*
obj
)
;
//
해
제
커널 메모리 할당: 최대 크기 제한 있음(초기 12KB, 현재는 조금더 커짐)
물리적 주소 공간에서 연속적인 메모리를 할당
flags:
GFP_USER(사용자 프로그램용 메모리 할당)
GFP_KERNEL(커널용 메모리 할당, sleelp 가능)
GFP_ATOMIC(인터럽트 핸들러 등에서 사용, sleep 불가) 등
2. 커널 가상 메모리 동적 할당/해제
void
*
vmalloc
(
unsigned
int
len
)
;
//
할
당
void
vmfree
(
void
*
addr
)
;
//
해
제
커널 메모리 할당, 크기 제한 없음
가상 주소 공간에서 연속적인 메모리 영역을 할당